Public Sub CheatStep()
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    Dim TMR As Long
    Dim Lett As String * 2
    
    Const TMR_INVALID As Long = -1
    
    TMR = GTC
    
    For i = 1 To FileCount
        For j = 1 To Files(i).CheatCount
            With Files(1).Cheats(j)
                If .Running Then
                    If .Started Or .GoneLett <= Len(.CompiledM) \ 2 Then
                        If .MainTimer <> TMR_INVALID Then
                            If TMR - .MainTimer > ChRepeat Then
                                .MainTimer = TMR_INVALID
                                .LettTimer = TMR
                            End If
                        Else
                            If TMR - .LettTimer > KDRepeat Then
                                .GoneLett = .GoneLett + 1
                                If .GoneLett > Len(.CompiledM) \ 2 Then
                                    .MainTimer = TMR
                                Else
                                    Lett = Mid(.CompiledM, (.GoneLett - 1) * 2 + 1, 2)
                                    Select Case Left(Lett, 1)
                                        Case CC_KEYDOWN
                                            Press Asc(Right(Lett, 1)), 0, 0, 0
                                        Case CC_KEYUP
                                            Press Asc(Right(Lett, 1)), 0, 2, 0
                                    End Select
                                    Debug.Print Right(Lett, 1)
                                    .LettTimer = TMR
                                End If
                            End If
                        End If
                    End If

                    .Started = (GetPress(Asc(.Start)) < 0)
                    Debug.Print .Started
                    
                End If
            End With
        Next
    Next
End Sub